package org.sadhar.sipp.kelompokpengurusbiaya;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.sadhar.errhandler.ClassAntiNull;
import org.sadhar.sia.common.ClassConnection;
import org.sadhar.sia.common.ClassUtility;
import org.springframework.jdbc.core.RowMapper;

public class KelompokPengurusBiayaDAOImpl implements KelompokPengurusBiayaDAO {

    public KelompokPengurusBiayaDAOImpl() {
        ClassConnection.getTransactionProxyFactoryBean().setTarget(this);
    }

    @Override
    public List<Map> list() {
        return ClassConnection.getJdbc().queryForList("SELECT * FROM ppmk.kelompokPengurusBiaya");

    }

    @Override
    public KelompokPengurusBiaya select(int kode) {
        String sql = "SELECT kodeKelompokPengurusBiaya,kelompokPengurusBiaya FROM ppmk.kelompokPengurusBiaya WHERE kodeKelompokPengurusBiaya=?";
        KelompokPengurusBiaya kpb = new KelompokPengurusBiaya();

        List<Map> listMap = ClassConnection.getJdbc().queryForList(sql, new Object[]{Integer.valueOf(kode)});

        for (Map m : listMap) {
            kpb = new KelompokPengurusBiaya();
            kpb.setKodeKelompokPengurusBiaya(kode);
            kpb.setNamaKelompokPengurusBiaya(ClassAntiNull.AntiNullString(m.get("kelompokPengurusBiaya")));
        }
        return kpb;
    }

    @Override
    public KelompokPengurusBiaya select(String nama) {
        String sql = "SELECT * FROM ppmk.kelompokPengurusBiaya WHERE kelompokPengurusBiaya=?";
        return (KelompokPengurusBiaya) ClassConnection.getJdbc().queryForObject(sql, new Object[]{ClassUtility.quote(nama)},
                new RowMapper() {

                    public Object mapRow(ResultSet rs, int rowNum)
                            throws SQLException {
                        return new KelompokPengurusBiaya(
                                rs.getInt("kodeKelompokPengurusBiaya"),
                                rs.getString("kelompokPengurusBiaya"));
                    }
                });
    }

    public List<KelompokPengurusBiaya> listAll() throws Exception {
        List<KelompokPengurusBiaya> list = new ArrayList<KelompokPengurusBiaya>();
        List<Map> rows = ClassConnection.getJdbc().queryForList("SELECT * FROM ppmk.kelompokPengurusBiaya");
        for (Map m : rows) {
            KelompokPengurusBiaya kel = new KelompokPengurusBiaya();
            kel.setKodeKelompokPengurusBiaya(Integer.valueOf(m.get("kodeKelompokPengurusBiaya").toString()));
            kel.setNamaKelompokPengurusBiaya(m.get("kelompokPengurusBiaya").toString());
            list.add(kel);
        }
        return list;
    }
}
